home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_largefile.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  4KB  |  153 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. from test import test_support
  5. import os
  6. import struct
  7. import stat
  8. import sys
  9.  
  10. try:
  11.     import signal
  12.     oldhandler = signal.signal(signal.SIGXFSZ, signal.SIG_IGN)
  13. except (ImportError, AttributeError):
  14.     pass
  15.  
  16. size = 0x9502F900L
  17. name = test_support.TESTFN
  18. if sys.platform[:3] == 'win' or sys.platform == 'darwin':
  19.     test_support.requires('largefile', 'test requires %s bytes and a long time to run' % str(size))
  20. else:
  21.     f = open(test_support.TESTFN, 'wb')
  22.     
  23.     try:
  24.         f.seek(0x80000001L)
  25.         f.write('x')
  26.         f.flush()
  27.     except (IOError, OverflowError):
  28.         f.close()
  29.         os.unlink(test_support.TESTFN)
  30.         raise test_support.TestSkipped, 'filesystem does not have largefile support'
  31.  
  32.     f.close()
  33.  
  34. def expect(got_this, expect_this):
  35.     if test_support.verbose:
  36.         print '%r =?= %r ...' % (got_this, expect_this),
  37.     
  38.     if got_this != expect_this:
  39.         if test_support.verbose:
  40.             print 'no'
  41.         
  42.         raise test_support.TestFailed, 'got %r, but expected %r' % (got_this, expect_this)
  43.     elif test_support.verbose:
  44.         print 'yes'
  45.     
  46.  
  47. if test_support.verbose:
  48.     print 'create large file via seek (may be sparse file) ...'
  49.  
  50. f = open(name, 'wb')
  51.  
  52. try:
  53.     f.write('z')
  54.     f.seek(0)
  55.     f.seek(size)
  56.     f.write('a')
  57.     f.flush()
  58.     if test_support.verbose:
  59.         print 'check file size with os.fstat'
  60.     
  61.     expect(os.fstat(f.fileno())[stat.ST_SIZE], size + 1)
  62. finally:
  63.     f.close()
  64.  
  65. if test_support.verbose:
  66.     print 'check file size with os.stat'
  67.  
  68. expect(os.stat(name)[stat.ST_SIZE], size + 1)
  69. if test_support.verbose:
  70.     print 'play around with seek() and read() with the built largefile'
  71.  
  72. f = open(name, 'rb')
  73.  
  74. try:
  75.     expect(f.tell(), 0)
  76.     expect(f.read(1), 'z')
  77.     expect(f.tell(), 1)
  78.     f.seek(0)
  79.     expect(f.tell(), 0)
  80.     f.seek(0, 0)
  81.     expect(f.tell(), 0)
  82.     f.seek(42)
  83.     expect(f.tell(), 42)
  84.     f.seek(42, 0)
  85.     expect(f.tell(), 42)
  86.     f.seek(42, 1)
  87.     expect(f.tell(), 84)
  88.     f.seek(0, 1)
  89.     expect(f.tell(), 84)
  90.     f.seek(0, 2)
  91.     expect(f.tell(), size + 1 + 0)
  92.     f.seek(-10, 2)
  93.     expect(f.tell(), size + 1 - 10)
  94.     f.seek(-size - 1, 2)
  95.     expect(f.tell(), 0)
  96.     f.seek(size)
  97.     expect(f.tell(), size)
  98.     expect(f.read(1), 'a')
  99.     f.seek(-size - 1, 1)
  100.     expect(f.read(1), 'z')
  101.     expect(f.tell(), 1)
  102. finally:
  103.     f.close()
  104.  
  105. if test_support.verbose:
  106.     print 'play around with os.lseek() with the built largefile'
  107.  
  108. f = open(name, 'rb')
  109.  
  110. try:
  111.     expect(os.lseek(f.fileno(), 0, 0), 0)
  112.     expect(os.lseek(f.fileno(), 42, 0), 42)
  113.     expect(os.lseek(f.fileno(), 42, 1), 84)
  114.     expect(os.lseek(f.fileno(), 0, 1), 84)
  115.     expect(os.lseek(f.fileno(), 0, 2), size + 1 + 0)
  116.     expect(os.lseek(f.fileno(), -10, 2), size + 1 - 10)
  117.     expect(os.lseek(f.fileno(), -size - 1, 2), 0)
  118.     expect(os.lseek(f.fileno(), size, 0), size)
  119.     expect(f.read(1), 'a')
  120. finally:
  121.     f.close()
  122.  
  123. if hasattr(f, 'truncate'):
  124.     if test_support.verbose:
  125.         print 'try truncate'
  126.     
  127.     f = open(name, 'r+b')
  128.     
  129.     try:
  130.         f.seek(0, 2)
  131.         expect(f.tell(), size + 1)
  132.         newsize = size - 10
  133.         f.seek(newsize)
  134.         f.truncate()
  135.         expect(f.tell(), newsize)
  136.         f.seek(0, 2)
  137.         expect(f.tell(), newsize)
  138.         newsize -= 1
  139.         f.seek(42)
  140.         f.truncate(newsize)
  141.         expect(f.tell(), 42)
  142.         f.seek(0, 2)
  143.         expect(f.tell(), newsize)
  144.         f.seek(0)
  145.         f.truncate(1)
  146.         expect(f.tell(), 0)
  147.         expect(len(f.read()), 1)
  148.     finally:
  149.         f.close()
  150.  
  151.  
  152. os.unlink(name)
  153.